package org.example.config;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 短信服务配置类
 */
@Data
@Component
@ConfigurationProperties(prefix = "sms")
public class SmsConfig {
    
    /**
     * 公司ID
     */
    private String companyId;
    
    /**
     * 应用ID
     */
    private String appId;
    
    /**
     * 应用密钥
     */
    private String key;
    
    /**
     * 验证码模板ID
     */
    private String codeTemplateId;
    
    /**
     * 验证码配置
     */
    private CodeConfig code = new CodeConfig();
    
    /**
     * 频率限制配置
     */
    private RateLimitConfig rateLimit = new RateLimitConfig();
    
    @Data
    public static class CodeConfig {
        /**
         * 验证码长度
         */
        private int length = 6;
        
        /**
         * 验证码过期时间（分钟）
         */
        private int expireMinutes = 5;
        
        /**
         * 最大尝试次数
         */
        private int maxAttempts = 3;
    }
    
    @Data
    public static class RateLimitConfig {
        /**
         * 每分钟最大发送次数
         */
        private int maxPerMinute = 3;
        
        /**
         * 每小时最大发送次数
         */
        private int maxPerHour = 10;
        
        /**
         * 每天最大发送次数
         */
        private int maxPerDay = 50;
    }
}



